#include "../../common/helper.hpp"
#include <iostream>

int main()
{
    xzt::FileHelper filehelper("../../common/log.hpp");
    DLOG("文件是否存在：%d", filehelper.exist());
    DLOG("文件大小（字节）：%ld", filehelper.size());

    std::string tmp_path_file = "./a/b/tmp.cpp";
    xzt::FileHelper tmp_helper(tmp_path_file);
    if(tmp_helper.exist() == false)
    {
        std::string path = xzt::FileHelper::parentDirectory(tmp_path_file);
        if(xzt::FileHelper(path).exist() == false)  // 若文件所在目录不存在
        {
            xzt::FileHelper::createDirectory(path);
        }
        xzt::FileHelper::createFile(tmp_path_file);
    }
    std::string text;
    filehelper.read(text);
    tmp_helper.write(text);

    // 部分读取测试 1
    char read_str[16] = {0};    // 记得初始化
    filehelper.read(read_str, 8, 11);
    DLOG("read_str = %s", read_str);

    // 部分读取测试 2
    std::string read_msg(16, '\0');
    filehelper.read(&read_msg[0], 8, 11);
    DLOG("read_msg = %s", read_msg.c_str());

    // 部分修改write测试
    const char* massage = "-123456789-";        // 将tmp_helper对应的文件内第一行"__LOG_HPP__"置换为指定字符
    tmp_helper.write(massage, 8, strlen(massage));

    // rename更名测试
    tmp_helper.rename("a/b/test.cpp");

    // 删除文件测试
    tmp_helper.removeFile("a/b/test.cpp");

    // 删除路径测试
    tmp_helper.removeDirectory("./a");

    return 0;
}

